package com.crm.service.client;

import java.util.List;
import java.util.Map;

import com.crm.pojo.ClientInfo;
import com.crm.pojo.Contact;
import com.crm.vo.ContactIdAndNameVo;
import com.crm.vo.Result;
import com.crm.vo.WordAndFirstName;

public interface ContactService {

	
	/**
	 * 分页查询没有被删除的联系人
	 * @return
	 */
	public List<Contact> findAllContactsNoDel(int curpage, int pagesize);
	
	/**
	 * 查询没有被删除的联系人的数量
	 * @return
	 */
	public Long countContactsNoDel();
	
	/**
	 * 删除联系人
	 * @param contactid
	 * @return
	 */
	public  Result delContact(Long contactid);
	
	
	/**
	 * 找出所有联系人的姓
	 * @return
	 */
	public List<WordAndFirstName> getContactFirstName();
	

	/**
	 * 根据名字查找没有被删除的客户
	 * @param contactName
	 * @return
	 */
	public List<Contact> findContactByNameNotDel(String contactName);
	
	/**
	 * 添加联系人
	 * @param contact
	 * @return
	 */
	public Result addContact(Contact contact ,Long cid);

	/**
	 * 条件查询联系人
	 * @param contact
	 * @param cid
	 * @return
	 */
	public List<Contact> queryContactWhere(Contact contact, Long cid, int curpage, int pagesize);
	
	/**
	 * 条件查询联系人的数量
	 * @param contact
	 * @param cid
	 * @param curpage
	 * @param pagesize
	 * @return
	 */
	public Long queryCountContactWhere(Contact contact, Long cid);
	
	
	/**
	 * 查询所有的联系人编号和姓名
	 * @return
	 */
	public List<ContactIdAndNameVo> findContactIdAndName();
	
	/**
	 * 通过客户编号查询所有的联系人编号和姓名
	 * @param contactid
	 * @return
	 */
	public List<ContactIdAndNameVo> findContactIdAndNameByCid(Long cid);
	
	/**
	 * 通过联系人编号查询客户
	 * @param contactid
	 * @return
	 */
	public List<ClientInfo> findClientInfoBycontactid(Long contactid);
	
	/**
	 * 通过联系人编号查询联系人
	 * @param contactid
	 * @return
	 */
	public Contact findContactBycontactid(Long contactid);
}
